<?php
namespace library;
//	引入数据库信息类
use \PDO;
use library\Config;

class Connection
{
	protected $dbh;
	//	数据库配置信息
	protected $Config =  [
		// 数据库类型
		'type'            => '',
		// 服务器地址
		'hostname'        => '',
		// 数据库名
		'database'        => '',
		// 用户名
		'username'        => '',
		// 密码
		'password'        => '',
		// 端口
		'hostport'        => ''
	];
	
	public function __construct(array $Config=[]){
		//	判断构造链接对象时是否是默认数据库,如果不是则合并新传入的数据库
		if (!empty($Config)) {
			$this->Config = array_merge($this->Config,$Config);
		}
		
		//	创建构造对象
		$this->buildClass();
		
		$this->initialize();

	}
	
	//	获取数据库默认配置
	public function DataBase(){
		return $Config;
	}
	
	//	构造函数
	protected function buildClass(){
		// require_once "./Config/Config.php";
		$this->Config = array_merge($this->Config,Config::get("Config"));
	}
	
	// public function getConfig(){
	// 	return $this->Config;
	// }
	
	//	初始化连接实例
	protected function initialize(){
		$this->dbh = new PDO('mysql:host='.$this->Config["hostname"].';dbname='.$this->Config["database"].'',$this->Config["username"],$this->Config["password"]);
	}
	
	//	关闭链接
	public function close(){
		$this->dbh = null;
	}
	public function getDbh(){
		return $dbh;
	}
	public function query($sql){
		$res = array();
		$resArray = $this->dbh->query($sql);
		$resArray = $resArray->fetchAll(PDO::FETCH_ASSOC);
		foreach ( $resArray as $row)  {  
			array_push($res,$row);
		}
		return $res;
	}
}
?>